1. Field of the Invention
This invention relates to data transfer systems and, more particularly, to a system for regulating the transfer of data from a data source such as a host computer to a data recording device such as a remote lineby-line printer.
2. Description of The Related Art
A remote line printer system generally consists of a transmitter unit, a communication circuit and, at the remote location, a receiver unit which drives a high-speed line-by-line printer. Such a system is disclosed in the co-pending U.S. patent application Ser. No. 618,994 filed June 11, 1984 as a continuation of Ser. No. 378,793 filed May 17, 1982, now abandoned and assigned to the same assignee ("the RLPS-1 system"). U.S. patent application Ser. No. 618,994 issued on Feb. 3, 1987 as U.S. Pat. No. 4,641,263.
A principal feature of the RLPS-1 system is that the transmitter couples to the print port of the host computer rather than to the communications port. The transmitter accepts bursts of data in parallel format, with each burst corresponding to a print line. After each burst, the transmitter converts the parallel data to serial data for communication to the remote location. At the remote location the receiver converts the serial data into corresponding bursts of parallel data to drive the high-speed line-by-line printer. The host computer thinks it is driving a local high-speed printer, and the remotely located high-speed printer thinks it is being driven by a local host computer.
The communications protocol between the transmitter and receiver units includes comprehensive error checking as well as facilities for compressing the amount of data required to describe one print line. The receiver unit senses errors and instructs the transmitter unit to retransmit the data error free. Compression includes the deletion of sequentially repeating binary digits. But a consequence of error checking and compression is that the rate of error-free and decompressed print lines varies so that the remote high-speed printer is driven at varying print line rates by its receiver.
While the RLPS-1 system achieved substantial commercial success, it created a demand for an even more efficient system, a system for more efficiently handling varying print line rates.
A typical print line with 132 data characters (including spaces) and one vertical formatting character (such as a line feed) can be transferred by the host computer at 500,000 characters per second; i.e. in 0.266 milliseconds. A 1200 line per minute (LPM) printer will print approximately 20 such lines per second, at about 50 milliseconds per line. Thus, data transfers from the host computer to the printer occupy about 0.5% (0.266/50) of the combined time to load and print a line.
Since data transfers from the host computer are so fast and only occupy a small percentage of the computer's operating time, the data transfers are only made on request from the local transmitter of the remote line printer system. The host computer is programmed to expect a request for a line of data (from what it believes is a local line printer) before a given maximum amount of time after the last request. For example, if a request for a new line is not made within one second of the previous line, the host computer might declare an error and invoke an error recovery process. Unnecessary error recovery processes could render the remote line printer system useless unless the host computer is suitably modified. Modifying the host computer defeats one of the purposes of the remote line printer system; that is, to look to the host computer as a local line printer.
The remote line print printer system transfers print lines to the remote end. Because of the communication error correcting protocol, the compression of data and other factors, the rate of data transfer as measured in lines per unit of time may vary over a much wider range than that expected by the host computer from a local line printer. Further, the variation depends on the amount of time over which the data transfers are monitored by the host computer. For example, when viewed over a one second interval, the data transfer rate may be zero lines if a burst of communication circuit errors prevents any data from being correctly transferred. Over an interval of twenty seconds, however, the performance may average to a rate similar to a local line printer. But the invocation by the host computer of undesired error recovery processes only depends on a given maximum amount of time between sequential requests for data.